package com.eudon.genius.api.core.example;

import java.time.LocalDate;
import java.util.Map;

/**
 * 用户配置信息
 * 包含用户的个人资料和偏好设置
 *
 * @author eudon
 * @since 2025/9/25
 */
public class UserProfile {
    
    /**
     * 头像URL
     */
    private String avatar;
    
    /**
     * 个人简介
     */
    private String bio;
    
    /**
     * 生日
     */
    private LocalDate birthday;
    
    /**
     * 性别
     */
    private Gender gender;
    
    /**
     * 地址信息
     */
    private Address address;
    
    /**
     * 扩展属性
     */
    private Map<String, Object> extensions;
    
    /**
     * 通知设置
     */
    private NotificationSettings notifications;
    
    // Getters and Setters
    public String getAvatar() { return avatar; }
    public void setAvatar(String avatar) { this.avatar = avatar; }
    
    public String getBio() { return bio; }
    public void setBio(String bio) { this.bio = bio; }
    
    public LocalDate getBirthday() { return birthday; }
    public void setBirthday(LocalDate birthday) { this.birthday = birthday; }
    
    public Gender getGender() { return gender; }
    public void setGender(Gender gender) { this.gender = gender; }
    
    public Address getAddress() { return address; }
    public void setAddress(Address address) { this.address = address; }
    
    public Map<String, Object> getExtensions() { return extensions; }
    public void setExtensions(Map<String, Object> extensions) { this.extensions = extensions; }
    
    public NotificationSettings getNotifications() { return notifications; }
    public void setNotifications(NotificationSettings notifications) { this.notifications = notifications; }
    
    /**
     * 性别枚举
     */
    public enum Gender {
        /**
         * 男性
         */
        MALE,
        
        /**
         * 女性
         */
        FEMALE,
        
        /**
         * 其他
         */
        OTHER
    }
}